(1) Field of the Invention
The present invention relates to a segment table origin address (STO) stack control system, and particularly to a STO stack control system employed in the data processing system which enables dynamic access over a plurality of virtual spaces, and in which the STO stack is retrieved depending upon the contents of a plurality of control registers which specify virtual spaces. In this system, when the contents of a given control register are changed to register new STO data having a new STO identifier (STO.multidot.ID) in the STO stack and when it becomes necessary to erase the STO data of an old Sto.multidot.ID due to a limitation on the number of storage positions on the STO stack, non-corresponding STO data having an old STO.multidot.ID is not erased where the registration thereof is was performed on a basis of the virtual space that corresponds to the content of another control register but, instead, the STO data corresponding to the old STO.multidot.ID registered on the basis of the virtual space corresponding to the control register whose contents are changed, is erased.
(2) Description of the Prior Art
In a conventional data processing system which employs a multi-virtual memory system dealing with multiple virtual spaces, it is accepted practice to register STO.multidot.ID's corresponding to virtual spaces in the STO stack, to retrieve the STO stack when a virtual space is changed, and to supply the retrieved STO.multidot.ID to a table lookaside buffer (TLB) so that the STO.multidot.ID is stored in the TLB together with the data that designates correspondence between a real address and a virtual address.
However, in a data processing system which enables access over, for example, two virtual spaces or, in other words, in a data processing system which is based upon a so-called great virtual memory system which couples two virtual spaces having definite maximum sizes into one big virtual space, two control registers are provided to make access to the STO stack, and the STO stack is retrieved depending upon the contents of each of the control registers.
In registering the STO.multidot.ID, on the other hand, the STO.multidot.ID's are generated by hashing the contents of the control registers. Therefore, some of the generated STO.multidot.ID's may assume the same value despite the fact that the control registers actually have different contents. Therefore, the STO stack is divided into two ways, or portions, i.e., up side and down side, so that two STO.multidot.ID's which have the same value are extractably or identifiably registered onto the STO stack, and when it is necessary to register a new STO.multidot.ID that assumes the same value as the registered ones, the older one is erased from the two existing STO.multidot.ID's. Below, the registered STO.multidot.ID which is utilized most recently is called a hot STO.multidot.ID and the other one is called a cold STO.multidot.ID.
The above-mentioned erasure processing has heretofore been put into practice. In a data processing apparatus in which access over two virtual spaces is permitted, however, when the contents of a given one of the two control registers are changed to register a new STO.multidot.ID, the old STO.multidot.ID on the cold side (i.e., the one that will be erased) may often happen to be a STO.multidot.ID that is generated on the basis of the contents of the other of the two control registers. Even in such a case, the conventional system erases the registration (i.e., the STO data) of the STO.multidot.ID on the cold side, i.e., the data having the STO.multidot.ID corresponding to the other of the two control registers. Therefore, access over two virtual spaces, i.e., over a virtual space designated by the contents of the given one of the control registers and a virtual space designated by the contents of the other control register, is greatly limited. This is because, since most of the dynamic access over different virtual spaces is effected over virtual spaces which are recently used, it is not preferable, in the above-mentioned case, to erase the STO.multidot.ID on the cold side. Moreover, in the conventional data processing system, access over different spaces is effected by using a common area which temporarily stores the contents of a virtual space. Therefore, the processing ability of the conventional system is greatly decreased especially when the access over different virtual spaces is effected.